home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / include / dev / exabyte.h < prev    next >
C/C++ Source or Header  |  1991-09-02  |  8KB  |  199 lines

  1. /*
  2.  * exabyte.h --
  3.  *
  4.  *    Declarations for Exabyte tape drives.
  5.  *
  6.  * Copyright 1991 Regents of the University of California
  7.  * Permission to use, copy, modify, and distribute this
  8.  * software and its documentation for any purpose and without
  9.  * fee is hereby granted, provided that this copyright
  10.  * notice appears in all copies.  The University of California
  11.  * makes no representations about the suitability of this
  12.  * software for any purpose.  It is provided "as is" without
  13.  * express or implied warranty.
  14.  *
  15.  * $Header: /sprite/src/lib/include/dev/RCS/exabyte.h,v 1.3 91/09/02 14:04:31 jhh Exp $ SPRITE (Berkeley)
  16.  */
  17.  
  18. #ifndef _EXABYTE
  19. #define _EXABYTE
  20.  
  21. #include <sys/scsi.h>
  22. /*
  23.  * Sense data for exb8200.
  24.  */
  25.  
  26. typedef struct {
  27.     ScsiClass7Sense    extSense;    /* 8 Bytes */
  28.     unsigned char pad8;            /* Reserved */
  29.     unsigned char pad;            /* Reserved */
  30.     unsigned char pad10;        /* Reserved */
  31.     unsigned char pad11;        /* Reserved */
  32.     /*
  33.      * SCSI 2 support.
  34.      */
  35.     unsigned char senseCode;        /* 0x4 if sense key is NOT_READY */
  36.     unsigned char senseCodeQualifier;    /* 00 - volume not mounted.
  37.                      * 01 - rewinding or loading */
  38.     unsigned char pad14;        /* Reserved */
  39.     unsigned char pad15;        /* Reserved */
  40.     unsigned char highErrorCnt;        /* High byte of error count */
  41.     unsigned char midErrorCnt;        /* Middle byte of error count */
  42.     unsigned char lowErrorCnt;        /* Low byte of error count */
  43.     /*
  44.      * Error bits that are command dependent.  0 is ok, 1 means error.
  45.      * These are defined on pages 37-38 of the User Manual, Rev.03
  46.      */
  47. #if BYTE_ORDER == BIG_ENDIAN
  48.     unsigned char PF        :1;    /* Power failure */
  49.     unsigned char BPE        :1;    /* SCSI Bus Parity Error */
  50.     unsigned char FPE        :1;    /* Formatted buffer parity error */
  51.     unsigned char ME        :1;    /* Media error */
  52.     unsigned char ECO        :1;    /* Error counter overflow */
  53.     unsigned char TME        :1;    /* Tape motion error */
  54.     unsigned char TNP        :1;    /* Tape not present */
  55.     unsigned char BOT        :1;    /* Set when tape is at BOT */
  56.  
  57.     unsigned char XFR        :1;    /* Transfer Abort Error */
  58.     unsigned char TMD        :1;    /* Tape Mark Detect Error */
  59.     unsigned char WP        :1;    /* Write Protect */
  60.     unsigned char FMKE        :1;    /* File Mark Error */
  61.     unsigned char URE        :1;    /* Data flow underrun. Media error. */
  62.     unsigned char WE1        :1;    /* Max write retries attempted */
  63.     unsigned char SSE        :1;    /* Servo System error.  Catastrophic */
  64.     unsigned char FE        :1;    /* Formatter error.  Catastrophic */
  65.  
  66.     unsigned char pad21        :6;    /* Reserved */
  67.     unsigned char WSEB        :1;    /* Write Splice Error, hit blank tape */
  68.     unsigned char WSEO        :1;    /* Write Splice Error, overshoot */
  69. #else /* BYTE_ORDER == LITTLE_ENDIAN */
  70.  
  71.     unsigned char BOT        :1;    /* Set when tape is at BOT */
  72.     unsigned char TNP        :1;    /* Tape not present */
  73.     unsigned char TME        :1;    /* Tape motion error */
  74.     unsigned char ECO        :1;    /* Error counter overflow */
  75.     unsigned char ME        :1;    /* Media error */
  76.     unsigned char FPE        :1;    /* Formatted buffer parity error */
  77.     unsigned char BPE        :1;    /* SCSI Bus Parity Error */
  78.     unsigned char PF        :1;    /* Power failure */
  79.  
  80.     unsigned char FE        :1;    /* Formatter error.  Catastrophic */
  81.     unsigned char SSE        :1;    /* Servo System error.  Catastrophic */
  82.     unsigned char WE1        :1;    /* Max write retries attempted */
  83.     unsigned char URE        :1;    /* Data flow underrun. Media error. */
  84.     unsigned char FMKE        :1;    /* File Mark Error */
  85.     unsigned char WP        :1;    /* Write Protect */
  86.     unsigned char TMD        :1;    /* Tape Mark Detect Error */
  87.     unsigned char XFR        :1;    /* Transfer Abort Error */
  88.  
  89.     unsigned char WSEO        :1;    /* Write Splice Error, overshoot */
  90.     unsigned char WSEB        :1;    /* Write Splice Error, hit blank tape */
  91.     unsigned char pad21        :6;    /* Reserved */
  92.  
  93. #endif /* BYTE_ORDER */
  94.  
  95.     unsigned char pad22;        /* Reserved */
  96.     unsigned char highRemainingTape;    /* High byte of remaining tape len */
  97.     unsigned char midRemainingTape;    /* Middle byte of remaining tape len */
  98.     unsigned char lowRemainingTape;    /* Low byte of remaining tape len */
  99.  
  100. } Exb8200Sense;                
  101.  
  102. typedef struct {
  103.     ScsiClass7Sense    extSense;    /* 8 Bytes */
  104.     unsigned char pad8;            /* Reserved */
  105.     unsigned char pad;            /* Reserved */
  106.     unsigned char pad10;        /* Reserved */
  107.     unsigned char underrun;        /* Underrun/overrun counter */
  108.     /*
  109.      * SCSI 2 support.
  110.      */
  111.     unsigned char senseCode;        /* 0x4 if sense key is NOT_READY */
  112.     unsigned char senseCodeQualifier;    /* 00 - volume not mounted.
  113.                      * 01 - rewinding or loading */
  114.     unsigned char pad14;        /* Reserved */
  115.     unsigned char pad15;        /* Reserved */
  116.     unsigned char highErrorCnt;        /* High byte of error count */
  117.     unsigned char midErrorCnt;        /* Middle byte of error count */
  118.     unsigned char lowErrorCnt;        /* Low byte of error count */
  119.     /*
  120.      * Error bits that are command dependent.  0 is ok, 1 means error.
  121.      * These are defined on pages 37-38 of the User Manual, Rev.03
  122.      */
  123. #if BYTE_ORDER == BIG_ENDIAN
  124.     unsigned char PF        :1;    /* Power failure */
  125.     unsigned char BPE        :1;    /* SCSI Bus Parity Error */
  126.     unsigned char FPE        :1;    /* Formatted buffer parity error */
  127.     unsigned char ME        :1;    /* Media error */
  128.     unsigned char ECO        :1;    /* Error counter overflow */
  129.     unsigned char TME        :1;    /* Tape motion error */
  130.     unsigned char TNP        :1;    /* Tape not present */
  131.     unsigned char BOT        :1;    /* Set when tape is at BOT */
  132.  
  133.     unsigned char XFR        :1;    /* Transfer Abort Error */
  134.     unsigned char TMD        :1;    /* Tape Mark Detect Error */
  135.     unsigned char WP        :1;    /* Write Protect */
  136.     unsigned char FMKE        :1;    /* File Mark Error */
  137.     unsigned char URE        :1;    /* Data flow underrun. Media error. */
  138.     unsigned char WE1        :1;    /* Max write retries attempted */
  139.     unsigned char SSE        :1;    /* Servo System error.  Catastrophic */
  140.     unsigned char FE        :1;    /* Formatter error.  Catastrophic */
  141.  
  142.     unsigned char pad21        :6;    /* Reserved */
  143.     unsigned char WSEB        :1;    /* Write Splice Error, hit blank tape */
  144.     unsigned char WSEO        :1;    /* Write Splice Error, overshoot */
  145. #else /* BYTE_ORDER == LITTLE_ENDIAN */
  146.  
  147.     unsigned char BOT        :1;    /* Set when tape is at BOT */
  148.     unsigned char TNP        :1;    /* Tape not present */
  149.     unsigned char TME        :1;    /* Tape motion error */
  150.     unsigned char ECO        :1;    /* Error counter overflow */
  151.     unsigned char ME        :1;    /* Media error */
  152.     unsigned char FPE        :1;    /* Formatted buffer parity error */
  153.     unsigned char BPE        :1;    /* SCSI Bus Parity Error */
  154.     unsigned char PF        :1;    /* Power failure */
  155.  
  156.     unsigned char FE        :1;    /* Formatter error.  Catastrophic */
  157.     unsigned char SSE        :1;    /* Servo System error.  Catastrophic */
  158.     unsigned char WE1        :1;    /* Max write retries attempted */
  159.     unsigned char URE        :1;    /* Data flow underrun. Media error. */
  160.     unsigned char FMKE        :1;    /* File Mark Error */
  161.     unsigned char WP        :1;    /* Write Protect */
  162.     unsigned char TMD        :1;    /* Tape Mark Detect Error */
  163.     unsigned char XFR        :1;    /* Transfer Abort Error */
  164.  
  165.     unsigned char WSEO        :1;    /* Write Splice Error, overshoot */
  166.     unsigned char WSEB        :1;    /* Write Splice Error, hit blank tape */
  167.     unsigned char pad21        :6;    /* Reserved */
  168.  
  169. #endif /* BYTE_ORDER */
  170.  
  171.     unsigned char pad22;        /* Reserved */
  172.     unsigned char highRemainingTape;    /* High byte of remaining tape len */
  173.     unsigned char midRemainingTape;    /* Middle byte of remaining tape len */
  174.     unsigned char lowRemainingTape;    /* Low byte of remaining tape len */
  175.  
  176.     unsigned char trackingRetry;    /* Tracking retry counter. */
  177.     unsigned char readWriteRetry;    /* Read/Write retry counter. */
  178.     unsigned char faultCode;        /* Fault symptom code. */
  179. } Exb8500Sense;                
  180.  
  181. /*
  182.  * Values for the drive-specific fields in Dev_TapeStatus.
  183.  */
  184.  
  185. /*
  186.  * bufferedMode
  187.  */
  188.  
  189. #define DEV_EXB8500_UNBUFFERED_MODE    0x00     /* Data is unbuffered. */
  190. #define DEV_EXB8500_BUFFERED_MODE    0x01    /* Data is buffered. */
  191.  
  192. /*
  193.  * Density
  194.  */
  195. #define DEV_EXB8500_8200_MODE        0x14    /* Exb8200 mode. */
  196.  
  197. #endif /* _EXABYTE */
  198.  
  199.